//app.js
const app = getApp();
App({
  /**
   * 当小程序初始化完成时，会触发 onLaunch（全局只触发一次）
   */
  globalData:{
    StatusBar:0,
    lockList:[]
  },
  onLaunch: function() {
    if (wx.cloud) {
      wx.cloud.init({
        traceUser: true
      })
    }
    wx.getSystemInfo({
      success: e => {
        this.globalData.StatusBar = e.statusBarHeight;
        let capsule = wx.getMenuButtonBoundingClientRect();
		if (capsule) {
		 	this.globalData.Custom = capsule;
			this.globalData.CustomBar = capsule.bottom + capsule.top - e.statusBarHeight;
		} else {
			this.globalData.CustomBar = e.statusBarHeight + 50;
		}
      }
    })
    var ifregisted = 0
    //=================这一部分是自动登录====================
    wx.login({
      success: function(res) { //wx.login成功
        if (res.code) {
          console.log('code:', res.code)
          //发起网络请求
          wx.request({
            method: 'POST',
            header: {
              'content-type': 'application/x-www-form-urlencoded',
              'chartset': 'utf-8'
            },
            url: 'https://fdxt.xyz:5050', //服务器API的url
            data: {
              port: JSON.stringify("login"),
              code: JSON.stringify(res.code)
            },
            success: function(res) { //wx.request 成功
              console.log("wx.request成功，res：", res)
              if (res.data.userID) ////////////////////////////////
              {
                //获取到用户凭证 存储userID
                console.log("服务器返回data：", res.data)
                //var json = JSON.parse(res.data)
                wx.setStorage({
                  key: 'userID',
                  data: res.data,
                  success: function() {
                    console.log("userID储存成功")
                    wx.setStorage({
                      key: 'loginflag',
                      data: 1,
                    })//存储userID结束
                    console.log("loginflag已设置为", 1)
                    //====接下来自动获取用户是否注册和用户信息=========
                    wx.request({//获取是否注册、用户名、手机号、智能逻辑
                      method: 'POST',
                      header: {
                        'content-type': 'application/x-www-form-urlencoded',
                        'chartset': 'utf-8'
                      },
                      url: 'https://fdxt.xyz:5050', //服务器API的url
                      data: {
                        port: JSON.stringify("auto_login"),
                        userID: JSON.stringify(res.data.userID)
                        //自动获取用户信息嵌套进了自动登录中，以解决js执行顺序不是从上到下的问题
                      },
                      success: function (res) { //wx.request 成功
                        console.log("程序初始化app.js中自动登录获取服务器用户信息成功，res：", res)
                        if (res.data.phonenum)//通过是否包含电话号码来判断是否注册过
                        {
                          wx.setStorage({
                            key: 'userInfoServer',//将服务器信息储存至微信小程序
                            data: res,
                          })
                          wx.setStorage({
                            key: 'ifregistered',
                            data: 1,
                            success: function () {
                              console.log("ifregistered已经设置为1")
                            }
                          })
                          
                        }
                        else {
                          console.log("获取用户信息失败，但在success中返回。或用户未注册")
                          wx.setStorage({
                            key: 'ifregistered',
                            data: 0,
                            success: function () {
                              console.log("ifregistered已经设置为0")
                            }
                          })
                          
                        }

                      },
                      fail: function (res) { //wx.request 失败
                        console.log("获取服务器用户信息失败，res：", res)

                      }

                    })

                    //======获取用户是否注册和用户信息结束=========
                  },
                  fail: function() {
                    wx.showToast({
                      title: '登陆失败请重试',
                    })
                  }
                })

              } else {
                console.log("服务器返回userID值出错，res：", res)
              }

            },
            fail: function(res) { //wx.request 失败
              console.log("wx.request失败，res：", res)

            },
            complete: function(res) { //wx.request 完成
              console.log("wx.request完成")

            }

          })
        }
      },
      fail: function(res) { //wx.login 失败
        console.log("wx.login失败")

      }
    });
    //========自动登录部分结束==================

  },

  /**
   * 当小程序启动，或从后台进入前台显示，会触发 onShow
   */
  onShow: function(options) {
    wx.checkSession({
      fail:function(){//如果长时间导致登录过期，则重新登录
        console.log("微信登陆已过期！正在重新登录")
        wx.login({
          success: function (res) { //wx.login成功
            if (res.code) {
              //发起网络请求
              wx.request({
                method: 'POST',
                header: {
                  'content-type': 'application/x-www-form-urlencoded',
                  'chartset': 'utf-8'
                },
                url: 'https://fdxt.xyz:5050', //服务器API的url
                data: {
                  port: JSON.stringify("login"),
                  code: JSON.stringify(res.code)
                },
                success: function (res) { //wx.request 成功
                  if (res.data.userID) ////////////////////////////////
                  {
                    //获取到用户凭证 存储userID
                    wx.setStorage({
                      key: 'userID',
                      data: res.data,
                      success: function () {
                        console.log("userID储存成功")
                        wx.setStorage({
                          key: 'loginflag',
                          data: 1,
                        })//存储userID结束
                        console.log("loginflag已设置为", 1)
                        //====接下来自动获取用户是否注册和用户信息=========
                        wx.request({//获取是否注册、用户名、手机号、智能逻辑
                          method: 'POST',
                          header: {
                            'content-type': 'application/x-www-form-urlencoded',
                            'chartset': 'utf-8'
                          },
                          url: 'https://fdxt.xyz:5050', //服务器API的url
                          data: {
                            port: JSON.stringify("auto_login"),
                            userID: JSON.stringify(res.data.userID)
                            //自动获取用户信息嵌套进了自动登录中，以解决js执行顺序不是从上到下的问题
                          },
                          success: function (res) { //wx.request 成功
                            console.log("重新登录自动登录获取服务器用户信息成功，res：", res)
                            if (res.data.phonenum)//通过是否包含电话号码来判断是否注册过
                            {
                              wx.setStorage({
                                key: 'userInfoServer',//将服务器信息储存至微信小程序
                                data: res,
                              })
                              wx.setStorage({
                                key: 'ifregistered',
                                data: 1,
                                success: function () {
                                  console.log("ifregistered已经设置为1")
                                }
                              })

                            }
                            else {
                              console.log("获取用户信息失败，自动登录失败，但在success中返回")

                            }

                          },
                          fail: function (res) { //wx.request 失败
                            console.log("获取服务器用户信息失败，res：", res)

                          }

                        })

                        //======获取用户是否注册和用户信息结束=========
                      },
                      fail: function () {
                        wx.showToast({
                          title: '登陆失败请重试',
                        })
                      }
                    })

                  } else {
                    console.log("服务器返回userID值出错，res：", res)
                  }

                },
                fail: function (res) { //wx.request 失败
                  console.log("wx.request失败，res：", res)

                },
                complete: function (res) { //wx.request 完成
                  console.log("wx.request完成")

                }

              })
            }
          },
          fail: function (res) { //wx.login 失败
            console.log("wx.login失败")

          }
        });

      }
    })

  },

  /**
   * 当小程序从前台进入后台，会触发 onHide
   */
  onHide: function() {

  },

  /**
   * 当小程序发生脚本错误，或者 api 调用失败时，会触发 onError 并带上错误信息
   */
  onError: function(msg) {

  },

})